[Talend]tSalesforceOutputを利用してSalesforceのデータを更新する
はじめに
こんにちは。DI部の大高です。
今回はTalendのコンポーネント「tSalesforceOutput」によるデータの更新を紹介したいと思います。
前提条件
Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.1.1」、Salesforceのバージョンは「Winter '19」で検証しています。
なお、Salesforceのアカウントが無い場合には、以下から開発者環境を無料で新規作成することができます。
また、Salesforceについての細かい説明については記述しません。
tSalesforceOutputについて
「tSalesforceOutput」を利用するとSalesforceのデータを「INSERT」、「UPDATE」、「UPSERT」、「DELETE」することができます。
「tSalesforceOutput」コンポーネントのTalend Helpページはこちらです。
では、具体的に以下で解説していきます。
ジョブの説明
「tSalesforceConnection」でSalesforceに接続し、「tSalesforceInput」でデータを取得して「tMap」でデータを更新した後に「tSalesforceOutput」でデータを更新します。
「tSalesforceInput」でのデータ取得までについては以下の記事をご参照ください。今回はこちらと同じ処理を流用してデータを取得します。
[Talend]tSalesforceInputを利用してSalesforceからデータを取得する | DevelopersIO
Salesforceのデータについて
まず最初にSalesforceのデータを確認しておきます。
今回はサンプルとして「取引先」を扱いますので、「取引先」のデータを確認しておきます。
「取引先名」が「United Oil」で始まる取引先が3件ありますが、今回はこの3件のレコードの「取引先 部門」を更新したいと思います。
「tMap」コンポーネントの設定
今回は「tMap」コンポーネントについて細かい解説はしませんが、簡単に設定についてです。
「tMap」コンポーネントのマッピング設定で、データを更新するために「Var」に固定値の「Customer Success」を取引先部門の名前として設定し、出力側の「Site」(取引先 部門)カラムに設定しています。
「tSalesforceOutput」コンポーネントの設定
コンポーネントの設定
コンポーネントにはSalesforceへのデータ出力に関する設定をしていきます。
接続コンポーネント
ここでは設定済みの「tSalesforceConnection」のコンポーネントをプルダウンから指定します。なお、「tSalesforceConnection」コンポーネントを配置していない場合には、「Use this Component」を選択して、ここで直接接続設定をすることもできます。
モジュール名
出力したいSalesforceのオブジェクトのことを指します。今回は出力先オブジェクトとして「取引先」を設定します。
右端の「...」をクリックするとオブジェクト選択ウィンドウが開きますので、上部の「フィルタテキストの入力」の箇所に「取引先」と入力し、「取引先」を選択して「OK」をクリックします。
スキーマ定義
「モジュール名」の設定がおわったらスキーマ定義を開いてみます。すると、自動で該当オブジェクトのスキーマが定義されているのが確認できます。
今回は、「tSalesforceInput」で取得しているスキーマと同じスキーマとしたいと思いますので、画面中央の矢印をクリックしてすべてのカラムを入力スキーマと同じにします。
確認ダイアログが表示されるので「OK」をクリックし、問題ないことを確認して再度「OK」をクリックします。
なお、今回はデータの更新を行いたいのでSalesforceのオブジェクトにおいてキーカラムとなる「Id」カラムは必須となります。
出力のアクション
出力のアクションは「INSERT」、「UPDATE」、「UPSERT」、「DELETE」の4つから選択できます。今回は更新をしたいので「UPDATE」を選択します。
挿入の延長
ここから「詳細設定」です。
英語だと「Extend Insert」(拡張インサート?)オプションになります。このオプションを有効にすると「コミットレベル」オプションが表示され、より細かいINSERTのオプションが利用できるようになります。
NULLを無視
このオプションを有効にするとNULL値を無視してくれるようですが、細かい動作については確認できていません。。
コミットレベル
このオプションの数値の単位でコミットが行われます。デフォルトだと200なので200レコードずつのコミットとなります。
APIコール数を削減したい場合にはこの値を大きくするか、より大量レコードの場合には「tSalesforceOutputBulk」などのコンポーネント利用を検討することをおすすめします。
ログファイル名
エラーログの出力先ファイルパスです。エラーがない場合にはファイルは出力されますが、中身には何も出力されません。
tStatCatcher統計情報
「tStatCatcher」コンポーネントを利用する際に利用するオプションです。今回は無効にしました。
実行結果
設定は以上です。実際にこのジョブを実行すると以下のように出力されます。
実際にどのように更新されたか、Salesforce側の画面で確認してみます。
設定したとおり、「取引先 部門」が「Customer Success」に更新されました!
まとめ
以上、「tSalesforceOutput」コンポーネントによるデータの更新の紹介でした。どなたかの参考になれば幸いです。
それでは。